<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script>
        // 基本包装类
        var str = 'andy';
        console.log(str.length);
        // 对象才有属性和方法，复杂数据类型才有属性和方法
        // 基本包装类型：把简单数据类型包装成为复杂数据类型
        // (1)把简单数据类型包装为复杂数据类型
        var temp = new String('andy');
        // (2)把临时变量的值给str
        str = temp;
        // (3)销毁临时变量
        temp = null;

        // 字符串不可变：值不可变，这里看上去内容变了，其实是地址变了，内存中新开辟了内存空间
        var str = 'andy';
        console.log(str);
        str = 'red';
        console.log(str);
        // 因为字符串的不可变性，所以不要大量的拼接字符串

        // 字符串对象  根据字符串返回位置 str.indexOf('要查找的字符',[起始位置])
        var str = '改革春风吹满地， 春天来了';
        console.log(str.indexOf('春'));
        console.log(str.indexOf('春', 3));

        //求返回字符串位置以及次数
        // (1)核心算法：先查找第一个o出现的位置
        // (2)只要indexOf返回的结果不是-1就继续查找
        // (3)因为indexOf索引只能查找到第一个，所以查找后面的o，一定是当前索引加1，然后利用循环继续查找
        var str = 'andjdosoeodoeofod';
        var index = str.indexOf('o');
        var num = 0;
        while (index !== -1) {
            console.log(index);
            num++;
            index = str.indexOf('o', index + 1);
        }
        console.log('o出现的次数:' + num);

        // 根据位置返回字符 charAt(index)
        var s = 'andy'
        console.log(s.charAt(2));
        // 遍历每一个字符
        for (var i = 0; i < s.length; i++) {
            console.log(str.charAt(i));
        }
        // 返回相应索引号的字符ASCII值 目的：判断用户按下了那个键 charCodeAt(index)
        console.log(str.charCodeAt(0));
        //H5新增 str[index]
        console.log(str[0]);
    </script>
</head>

<body>

</body>

</html>